package com.zwy.Shopping.dao;

import com.zwy.Shopping.model.Category;
import com.zwy.Shopping.model.Product;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

/**
 * 对产品的操作
 */
public interface ProductDao {
    //获取所有种类
    public List<Category> getAllCategories();

    /**
     * 根据订单明细获得产品的销量
     * @return key:产品id value:销量
     * @throws SQLException
     */
    public Map<Integer,Integer> getProductSales() throws SQLException;
    //获取所有产品,信息
    public List<Product> getAllProduct();
    //获得产品信息通过categoryId
    public List<Product> getProduct(int categoryId);
    //模糊查询,种类名,产品名获得产品对象
    public List<Product> getProduct(String key);
    //根据商品号查询商品
    public Product getProductById(int productId);
    //对产品出库存的减少
    boolean reduceProductStock(int productId,int reduceNumber);
    //对产品的库存增加
    boolean IncreaseProductStock(int productId,int increaseNumber);

    boolean add(Product pro);
    boolean modifyProduct(Product pro);
    boolean deleteProduct(int productId);
    //查看商品是否有订单信息
    boolean isInOrderItem(int productId);

}
